reboot pod w9x z konzolovej apl.
Otázka od: Robert Suska
25. 6. 2004 14:52
ahojte!
moj problem je v tomto kode
program Project1;
{$APPTYPE CONSOLE}
uses
Windows;
begin
ExitWindowsEx(EWX_REBOOT, 0);
end.
je to velmi jednoducha konzolova aplikacia. ale problem je ze pod w98 tento
kod nejako nechce fungovat. Ked kod ktory som uviedol hore spustim zobrazi
sa hlasenie typu:
"Pred ukoncenim systemu windows musite ukoncit tento
program. Klepnutim...... atd"
Dalej ked do f() ExitWindowsEx pridam
parameter or EWX_FORCE tak sa aplikacia zobrazi, obrazovka blikne a nic sa
nestane. Ale uz ten genialny vyplod nezobrazi.... Dalej ked vyhodim toto
{$APPTYPE CONSOLE} tak vsetko funguje ako ma. Pc sa normalne rebootne a som
spokojny len problem je ze to mysi byt konzola. Vie mi niekto poradit ako
mam dosiahnut toho aby sa mi podarilo aj pod w9x rebootnut wokna z
konzolovej apl? Pod w2k a xp to funguje bez problemov. Samozrejme ze tam mam
kod typu
SetPrivilege('SE_SHUTDOWN_NAME', True);
tpResult := OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TTokenHd);
if tpResult then
begin
tpResult := LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME,
TTokenPvg.Privileges[0].Luid);
TTokenPvg.PrivilegeCount := 1;
TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
cbtpPrevious := SizeOf(rTTokenPvg);
pcbtpPreviousRequired := 0;
if tpResult then
Windows.AdjustTokenPrivileges(TTokenHd, False, TTokenPvg,
cbtpPrevious, rTTokenPvg, pcbtpPreviousRequired);
dakujem za nakopnutie... uz neviem ako dalej...
S pozdravom,
Robo